<?xml version="1.0" encoding="utf-8"?>
<!--
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Daffodil for Visual Studio  <http://daffodil.codeplex.com>
- Native multi-targeting support for Visual Studio 6 in Visual Studio 2010

2.33  [2012-09-28]

Owen Wengerd, ManuSoft
http://www.manusoft.com

Credits
  Some aspects of this project are based on information in this MSDN blog post:
  http://blogs.msdn.com/b/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx
  
  This file is a derivative work based on the file of the same name that is
  included with Visual Studio 2010. The original file bears the copyright
  notice reproduced below. Implicit authorization from Microsoft to create and
  distribute derivative works is deduced from comments in the files and
  documentation which describe ways to customize the build system by making
  changes to these files.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!--Copyright, Microsoft Corporation, All rights reserved.-->
<Rule Name="Link" PageTemplate="tool" DisplayName="Linker" SwitchPrefix="/" Order="20" xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Rule.Categories>
    <Category Name="General" DisplayName="General"/>
    <Category Name="Input" DisplayName="Input"/>
    <Category Name="Debugging" DisplayName="Debugging"/>
    <Category Name="System" DisplayName="System"/>
    <Category Name="Optimization" DisplayName="Optimization"/>
    <Category Name="Embedded IDL" DisplayName="Embedded IDL"/>
    <Category Name="Advanced" DisplayName="Advanced"/>
    <Category Name="Command Line" DisplayName="Command Line" Subtype="CommandLine"/>
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" ItemType="Link" Label="" HasConfigurationCondition="true"/>
  </Rule.DataSource>
  <StringProperty Subtype="file" Name="OutputFile" DisplayName="Output File" Description="The /OUT option overrides the default name and location of the program that the linker creates." Category="General" Switch="OUT" Separator=":" F1Keyword="VC.Project.VCLinkerTool.OutputFile">
  </StringProperty>
  <EnumProperty Name="ShowProgress" DisplayName="Show Progress" Description="Prints Linker Progress Messages" Category="General" F1Keyword="VC.Project.VCLinkerTool.ShowProgress">
    <EnumValue Name="NotSet" Switch="" DisplayName="Not Set" Description="No verbosity.">
    </EnumValue>
    <EnumValue Name="LinkVerbose" Switch="VERBOSE" DisplayName="Display all progress messages" Description="Displays all progress messages. ">
    </EnumValue>
    <EnumValue Name="LinkVerboseLib" Switch="VERBOSE:Lib" DisplayName="For Libraries Searched" Description="Displays progress messages indicating just the libraries searched">
    </EnumValue>
  </EnumProperty>
  <StringProperty Name="Version" DisplayName="Version" Description="The /VERSION option tells the linker to put a version number in the header of the .exe or .dll file. Use DUMPBIN /HEADERS to see the image version field of the OPTIONAL HEADER VALUES to see the effect of /VERSION." Category="General" Switch="VERSION" Separator=":" F1Keyword="VC.Project.VCLinkerTool.Version">
  </StringProperty>
  <BoolProperty ReverseSwitch="INCREMENTAL:NO" Name="LinkIncremental" DisplayName="Enable Incremental Linking" Description="Enables incremental linking.     (/INCREMENTAL:YES, /INCREMENTAL:NO)" Category="General" Switch="INCREMENTAL:YES" F1Keyword="VC.Project.VCLinkerTool.LinkIncremental">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="SuppressStartupBanner" DisplayName="Suppress Startup Banner" Description="The /NOLOGO option prevents display of the copyright message and version number. " Category="General" Switch="NOLOGO" F1Keyword="VC.Project.VCLinkerTool.SuppressStartupBanner">
  </BoolProperty>
  <BoolProperty Name="IgnoreImportLibrary" DisplayName="Ignore Import Library" Description="Specifies that the import library generated by this configuration should not be imported into dependent projects." Category="General" F1Keyword="VC.Project.VCLinkerTool.IgnoreImportLibrary">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="RegisterOutput" DisplayName="Register Output" Description="Specifies whether to register the primary output of this build." Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.RegisterOutput">
  </BoolProperty>
  <BoolProperty Name="PerUserRedirection" DisplayName="Per-user Redirection" Description="When Register Output is enabled, Per-user redirection forces registry writes to HKEY_CLASSES_ROOT to be redirected to HKEY_CURRENT_USER." Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.PerUserRedirection">
  </BoolProperty>
  <StringListProperty Subtype="folder" Name="AdditionalLibraryDirectories" DisplayName="Additional Library Directories" Description="Allows the user to override the environmental library path (/LIBPATH:folder)" Category="General" Switch="LIBPATH:" F1Keyword="VC.Project.VCLinkerTool.AdditionalLibraryDirectories">
  </StringListProperty>
  <BoolProperty Name="LinkLibraryDependencies" DisplayName="Link Library Dependencies" Description="Specifies whether or not library outputs from project dependencies are automatically linked in." Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.LinkLibraryDependencies">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ProjectReference" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <BoolProperty Name="UseLibraryDependencyInputs" DisplayName="Use Library Dependency Inputs" Description="Specifies whether or not the inputs to the librarian tool are used rather than the library file itself when linking in library outputs of project dependencies." Category="General" IncludeInCommandLine="false" F1Keyword="VC.Project.VCLinkerTool.UseLibraryDependencyInputs">
    <BoolProperty.DataSource>
      <DataSource Persistence="ProjectFile" ItemType="ProjectReference" Label="" HasConfigurationCondition="true"/>
    </BoolProperty.DataSource>
  </BoolProperty>
  <EnumProperty Name="ForceFileOutput" DisplayName="Force File Output" Description="The /FORCE option tells the linker to create an .exe file or DLL even if a symbol is referenced but not defined or is multiply defined. It may create invalid exe file." Category="General" F1Keyword="VC.Project.VCLinkerTool.ForceFileOutput">
    <EnumValue Name="Enabled" Switch="FORCE" DisplayName="Enabled" Description="/FORCE with no arguments implies both multiple and unresolved.">
    </EnumValue>
    <EnumValue Name="MultiplyDefinedSymbolOnly" Switch="FORCE:MULTIPLE" DisplayName="Multiply Defined Symbol Only" Description="Use /FORCE:MULTIPLE to create an output file whether or not LINK finds more than one definition for a symbol.">
    </EnumValue>
    <EnumValue Name="UndefinedSymbolOnly" Switch="FORCE:UNRESOLVED" DisplayName="Undefined Symbol Only" Description="Use /FORCE:UNRESOLVED to create an output file whether or not LINK finds an undefined symbol. /FORCE:UNRESOLVED is ignored if the entry point symbol is unresolved.">
    </EnumValue>
  </EnumProperty>
  <StringProperty Name="SpecifySectionAttributes" DisplayName="Specify Section Attributes" Description="The /SECTION option changes the attributes of a section, overriding the attributes set when the .obj file for the section was compiled." Category="General" Switch="SECTION" Separator=":" F1Keyword="VC.Project.VCLinkerTool.SpecifySectionAttributes">
  </StringProperty>
  <StringProperty Subtype="file" Name="MSDOSStubFileName" DisplayName="MS-DOS Stub File Name" Description="The /STUB option attaches an MS-DOS stub program to a Win32 program. " Category="General" Switch="STUB" Separator=":" Visible="false">
  </StringProperty>
  <StringProperty Subtype="folder" Name="TrackerLogDirectory" DisplayName="Tracker Log Directory" Description="Tracker log directory." Category="General" IncludeInCommandLine="false" Visible="false">
  </StringProperty>
  <StringListProperty Subtype="file" Name="AdditionalDependencies" DisplayName="Additional Dependencies" Description="Specifies additional items to add to the link command line [i.e. kernel32.lib] " Category="Input" F1Keyword="VC.Project.VCLinkerTool.AdditionalDependencies">
  </StringListProperty>
  <BoolProperty Name="IgnoreAllDefaultLibraries" DisplayName="Ignore All Default Libraries" Description="The /NODEFAULTLIB option tells the linker to remove one or more default libraries from the list of libraries it searches when resolving external references. " Category="Input" Switch="NODEFAULTLIB" F1Keyword="VC.Project.VCLinkerTool.IgnoreAllDefaultLibraries">
  </BoolProperty>
  <StringListProperty Subtype="file" Name="IgnoreSpecificDefaultLibraries" DisplayName="Ignore Specific Default Libraries" Description="Specifies one or more names of default libraries to ignore; separate multiple libraries with semi-colons.     (/NODEFAULTLIB:[name, name, ...])" Category="Input" Switch="NODEFAULTLIB:" F1Keyword="VC.Project.VCLinkerTool.IgnoreDefaultLibraryNames">
  </StringListProperty>
  <StringProperty Subtype="file" Name="ModuleDefinitionFile" DisplayName="Module Definition File" Description="The /DEF option passes a module-definition file (.def) to the linker. Only one .def file can be specified to LINK. " Category="Input" Switch="DEF" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ModuleDefinitionFile">
  </StringProperty>
  <StringListProperty Subtype="file" Name="ForceSymbolReferences" DisplayName="Force Symbol References" Description="The /INCLUDE option tells the linker to add a specified symbol to the symbol table." Category="Input" Switch="INCLUDE:" F1Keyword="VC.Project.VCLinkerTool.ForceSymbolReferences">
  </StringListProperty>
  <StringListProperty Subtype="file" Name="DelayLoadDLLs" DisplayName="Delay Loaded Dlls" Description="The /DELAYLOAD option causes delayed loading of DLLs. The dllname specifies a DLL to delay load. " Category="Input" Switch="DELAYLOAD:" F1Keyword="VC.Project.VCLinkerTool.DelayLoadDLLS">
  </StringListProperty>
  <BoolProperty Name="GenerateDebugInformation" DisplayName="Generate Debug Info" Description="The /DEBUG option creates debugging information for the .exe file or DLL." Category="Debugging" Switch="DEBUG" F1Keyword="VC.Project.VCLinkerTool.GenerateDebugInformation">
  </BoolProperty>
  <EnumProperty Name="DebugInformationFormat" DisplayName="Debug Information Format" Description="Specifies the type of debugging information generated by the linker.    (/DEBUGTYPE:[CV|COFF|BOTH])" Category="Debugging">
    <EnumValue Name="CV" Switch="DEBUGTYPE:CV" DisplayName="Microsoft Format" Description="This option creates Microsoft Format debugging information.">
    </EnumValue>
    <EnumValue Name="COFF" Switch="DEBUGTYPE:COFF" DisplayName="COFF Format" Description="This option creates Common Object File Format (COFF) debugging information.">
    </EnumValue>
    <EnumValue Name="Both" Switch="DEBUGTYPE:BOTH" DisplayName="Both Formats" Description="This option creates both COFF debugging information and Microsoft Format debugging information.">
    </EnumValue>
  </EnumProperty>
  <StringProperty Subtype="file" Name="ProgramDatabaseFile" DisplayName="Generate Program Database File" Description="By default, when /DEBUG is specified, the linker creates a program database (PDB) which holds debugging information. The default file name for the PDB has the base name of the program and the extension .pdb." Category="Debugging" Switch="PDB" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ProgramDatabaseFile">
  </StringProperty>
  <StringProperty Subtype="file" Name="StripPrivateSymbols" DisplayName="Strip Private Symbols" Description="The /PDBSTRIPPED option creates a second program database (PDB) file when you build your program image with any of the compiler or linker options that generate a PDB file (/DEBUG, /Z7, /Zd, or /Zi)." Category="Debugging" Switch="PDBSTRIPPED" Separator=":" F1Keyword="VC.Project.VCLinkerTool.StripPrivateSymbols">
  </StringProperty>
  <BoolProperty Name="GenerateMapFile" DisplayName="Generate Map File" Description="The /MAP option tells the linker to create a mapfile." Category="Debugging" Switch="MAP" F1Keyword="VC.Project.VCLinkerTool.GenerateMapFile">
    <Argument Property="MapFileName" IsRequired="false"/>
  </BoolProperty>
  <StringProperty Subtype="file" Name="MapFileName" DisplayName="Map File Name" Description="A user-specified name for the mapfile. It replaces the default name." Category="Debugging" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MapFileName">
  </StringProperty>
  <BoolProperty Name="MapExports" DisplayName="Map Exports" Description="The /MAPINFO option tells the linker to include the specified information in a mapfile, which is created if you specify the /MAP option. EXPORTS tells the linker to include exported functions." Category="Debugging" Switch="MAPINFO:EXPORTS" F1Keyword="VC.Project.VCLinkerTool.MapExports">
  </BoolProperty>
  <EnumProperty Name="SubSystem" DisplayName="SubSystem" Description="The /SUBSYSTEM option tells the operating system how to run the .exe file.The choice of subsystem affects the entry point symbol (or entry point function) that the linker will choose." Category="System" F1Keyword="VC.Project.VCLinkerTool.SubSystem">
    <EnumProperty.Arguments>
      <Argument Property="MinimumRequiredVersion" IsRequired="false"/>
    </EnumProperty.Arguments>
    <EnumValue Name="NotSet" Switch="" DisplayName="Not Set" Description="No subsystem set.">
    </EnumValue>
    <EnumValue Name="Console" Switch="SUBSYSTEM:CONSOLE" DisplayName="Console" Description="Win32 character-mode application. Console applications are given a console by the operating system. If main or wmain is defined, CONSOLE is the default.">
    </EnumValue>
    <EnumValue Name="Windows" Switch="SUBSYSTEM:WINDOWS" DisplayName="Windows" Description="Application does not require a console, probably because it creates its own windows for interaction with the user. If WinMain or wWinMain is defined, WINDOWS is the default.">
    </EnumValue>
    <EnumValue Name="Native" Switch="SUBSYSTEM:NATIVE" DisplayName="Native" Description="Device drivers for Windows NT. If /DRIVER:WDM is specified, NATIVE is the default.">
    </EnumValue>
    <EnumValue Name="EFI Application" Switch="SUBSYSTEM:EFI_APPLICATION" DisplayName="EFI Application" Description="EFI Application">
    </EnumValue>
    <EnumValue Name="EFI Boot Service Driver" Switch="SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER" DisplayName="EFI Boot Service Driver" Description="EFI Boot Service Driver">
    </EnumValue>
    <EnumValue Name="EFI ROM" Switch="SUBSYSTEM:EFI_ROM" DisplayName="EFI ROM" Description="EFI ROM">
    </EnumValue>
    <EnumValue Name="EFI Runtime" Switch="SUBSYSTEM:EFI_RUNTIME_DRIVER" DisplayName="EFI Runtime" Description="EFI Runtime">
    </EnumValue>
    <EnumValue Name="WindowsCE" Switch="SUBSYSTEM:WINDOWSCE" DisplayName="WindowsCE" Description="Application that runs on a Windows CE device.">
    </EnumValue>
    <EnumValue Name="POSIX" Switch="SUBSYSTEM:POSIX" DisplayName="POSIX" Description="Application that runs with the POSIX subsystem in Windows NT.">
    </EnumValue>
  </EnumProperty>
  <StringProperty Name="MinimumRequiredVersion" DisplayName="Minimum Required Version" Description="Specify the minimum required version of the subsystem. The arguments are decimal numbers in the range 0 through 65,535." Category="System" Separator="," F1Keyword="VC.Project.VCLinkerTool.MinimumRequiredVersion">
  </StringProperty>
  <StringProperty Name="HeapReserveSize" DisplayName="Heap Reserve Size" Description="Specifies total heap allocation size in virtual memory. Default is 1MB.    (/HEAP:reserve)" Category="System" Switch="HEAP" Separator=":" F1Keyword="VC.Project.VCLinkerTool.HeapReserveSize">
    <Argument Property="HeapCommitSize" IsRequired="false" Separator=","/>
  </StringProperty>
  <StringProperty Name="HeapCommitSize" DisplayName="Heap Commit Size" Description="Specifies total heap allocation size in physical memory. Default is 4KB.    (/HEAP:reserve,commit)" Category="System" F1Keyword="VC.Project.VCLinkerTool.HeapCommitSize">
  </StringProperty>
  <StringProperty Name="StackReserveSize" DisplayName="Stack Reserve Size" Description="Specifies the total stack allocation size in virtual memory. Default is 1MB.     (/STACK:reserve)" Category="System" Switch="STACK" Separator=":" F1Keyword="VC.Project.VCLinkerTool.StackReserveSize">
    <Argument Property="StackCommitSize" IsRequired="false" Separator=","/>
  </StringProperty>
  <StringProperty Name="StackCommitSize" DisplayName="Stack Commit Size" Description="Specifies the total stack allocation size in physical memory. Default is 4KB.     (/STACK:reserve,commit)" Category="System" F1Keyword="VC.Project.VCLinkerTool.StackCommitSize">
  </StringProperty>
  <BoolProperty ReverseSwitch="LARGEADDRESSAWARE:NO" Name="LargeAddressAware" DisplayName="Enable Large Addresses" Description="The /LARGEADDRESSAWARE option tells the linker that the application can handle addresses larger than 2 gigabytes. By default, /LARGEADDRESSAWARE:NO is enabled if /LARGEADDRESSAWARE is not otherwise specified on the linker line." Category="System" Switch="LARGEADDRESSAWARE" F1Keyword="VC.Project.VCLinkerTool.LargeAddressAware">
  </BoolProperty>
  <BoolProperty Name="SwapRunFromCD" DisplayName="Swap Run From CD" Description="The /SWAPRUN option tells the operating system to first copy the linker output to a swap file, and then run the image from there. This is a Windows NT 4.0 (and later) feature.When CD is specified, the operating system will copy the image on a removable disk to a page file and then load it." Category="System" Switch="SWAPRUN:CD" F1Keyword="VC.Project.VCLinkerTool.SwapRunFromCD">
  </BoolProperty>
  <BoolProperty Name="SwapRunFromNET" DisplayName="Swap Run From Network" Description="The /SWAPRUN option tells the operating system to first copy the linker output to a swap file, and then run the image from there. This is a Windows NT 4.0 (and later) feature. If NET is specified, the operating system will first copy the binary image from the network to a swap file and load it from there. This option is useful for running applications over the network." Category="System" Switch="SWAPRUN:NET" F1Keyword="VC.Project.VCLinkerTool.SwapRunFromNet">
  </BoolProperty>
  <EnumProperty Name="Driver" DisplayName="Driver" Description="Use the /DRIVER linker option to build a Windows NT kernel mode driver." Category="System" F1Keyword="VC.Project.VCLinkerTool.driver">
    <EnumValue Name="NotSet" Switch="" DisplayName="Not Set" Description="Default driver setting.">
    </EnumValue>
    <EnumValue Name="Driver" Switch="Driver" DisplayName="Driver" Description="Driver">
    </EnumValue>
    <EnumValue Name="UpOnly" Switch="DRIVER:UPONLY" DisplayName="UP Only" Description="/DRIVER:UPONLY causes the linker to add the IMAGE_FILE_UP_SYSTEM_ONLY bit to the characteristics in the output header to specify that it is a uniprocessor (UP) driver. The operating system will refuse to load a UP driver on a multiprocessor (MP) system.">
    </EnumValue>
    <EnumValue Name="WDM" Switch="DRIVER:WDM" DisplayName="WDM" Description="/DRIVER:WDM causes the linker to set the IMAGE_DLLCHARACTERISTICS_WDM_DRIVER bit in the optional header's DllCharacteristics field.">
    </EnumValue>
  </EnumProperty>
  <BoolProperty ReverseSwitch="OPT:NOREF" Name="OptimizeReferences" DisplayName="References" Description="/OPT:REF eliminates functions and/or data that are never referenced while /OPT:NOREF keeps functions and/or data that are never referenced. " Category="Optimization" Switch="OPT:REF" F1Keyword="VC.Project.VCLinkerTool.OptimizeReferences">
  </BoolProperty>
  <BoolProperty ReverseSwitch="OPT:NOWIN98" Name="OptimizeWin98" DisplayName="Optimize for Windows 98" Description="Align code on 4K boundaries. This improves performance on Windows 98 systems. (/OPT:WIN98, /OPT:NOWIN98) " Category="Optimization" Switch="OPT:WIN98">
  </BoolProperty>
  <BoolProperty ReverseSwitch="OPT:NOICF" Name="EnableCOMDATFolding" DisplayName="Enable COMDAT Folding" Description="Use /OPT:ICF[=iterations] to perform identical COMDAT folding. " Category="Optimization" Switch="OPT:ICF" F1Keyword="VC.Project.VCLinkerTool.EnableCOMDATFolding">
  </BoolProperty>
  <StringProperty Subtype="file" Name="FunctionOrder" DisplayName="Function Order" Description="The /ORDER option tells LINK to optimize your program by placing certain COMDATs into the image in a predetermined order. LINK places the functions in the specified order within each section in the image." Category="Optimization" Switch="ORDER" Separator=":@" F1Keyword="VC.Project.VCLinkerTool.FunctionOrder">
  </StringProperty>
  <StringProperty Subtype="file" Name="MidlCommandFile" DisplayName="MIDL Commands" Description="Specify MIDL command line Options (/MIDL:@responsefile)" Category="Embedded IDL" Switch="MIDL" Separator=":@" F1Keyword="VC.Project.VCLinkerTool.MidlCommandFile">
  </StringProperty>
  <BoolProperty Name="IgnoreEmbeddedIDL" DisplayName="Ignore Embedded IDL" Description="The /IGNOREIDL option specifies that any IDL attributes in source code should not be processed into an .idl file." Category="Embedded IDL" Switch="IGNOREIDL" F1Keyword="VC.Project.VCLinkerTool.IgnoreEmbeddedIDL">
  </BoolProperty>
  <StringProperty Subtype="file" Name="MergedIDLBaseFileName" DisplayName="Merged IDL Base File Name" Description="The /IDLOUT option specifies the name and extension of the .idl file." Category="Embedded IDL" Switch="IDLOUT" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MergedIDLBaseFileName">
  </StringProperty>
  <StringProperty Name="EntryPointSymbol" DisplayName="Entry Point" Description="The /ENTRY option specifies an entry point function as the starting address for an .exe file or DLL." Category="Advanced" Switch="ENTRY" Separator=":" F1Keyword="VC.Project.VCLinkerTool.EntryPointSymbol">
  </StringProperty>
  <BoolProperty Name="NoEntryPoint" DisplayName="No Entry Point" Description="The /NOENTRY option is required for creating a resource-only DLL.Use this option to prevent LINK from linking a reference to _main into the DLL." Category="Advanced" Switch="NOENTRY" F1Keyword="VC.Project.VCLinkerTool.ResourceOnlyDLL">
  </BoolProperty>
  <BoolProperty Name="SetChecksum" DisplayName="Set Checksum" Description="The /RELEASE option sets the Checksum in the header of an .exe file." Category="Advanced" Switch="RELEASE" F1Keyword="VC.Project.VCLinkerTool.SetChecksum">
  </BoolProperty>
  <StringProperty Name="BaseAddress" DisplayName="Base Address" Description="Sets a base address for the program (/BASE:{address[,size] | @filename,key})" Category="Advanced" Switch="BASE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.BaseAddress">
  </StringProperty>
  <BoolProperty ReverseSwitch="FIXED:NO" Name="FixedBaseAddress" DisplayName="Fixed Base Address" Description="Creates a program that can be loaded only at its preferred base address (/FIXED[:NO])" Category="Advanced" Switch="FIXED" F1Keyword="VC.Project.VCLinkerTool.FixedBaseAddress">
  </BoolProperty>
  <BoolProperty Name="SupportUnloadOfDelayLoadedDLL" DisplayName="Unload delay loaded DLL" Description="The UNLOAD qualifier tells the delay-load helper function to support explicit unloading of the DLL. (/DELAY:UNLOAD)" Category="Advanced" Switch="DELAY:UNLOAD" F1Keyword="VC.Project.VCLinkerTool.SupportUnloadOfDelayLoadedDLL">
  </BoolProperty>
  <BoolProperty Name="SupportNobindOfDelayLoadedDLL" DisplayName="Nobind delay loaded DLL" Description="The NOBIND qualifier tells the linker not to include a bindable IAT in the final image. The default is to create the bindable IAT for delay-loaded DLLs. (/DELAY:NOBIND)" Category="Advanced" Switch="DELAY:NOBIND" F1Keyword="VC.Project.VCLinkerTool.SupportNobindOfDelayLoadedDLL">
  </BoolProperty>
  <StringProperty Subtype="file" Name="ImportLibrary" DisplayName="Import Library" Description="Overrides the default import library name (/IMPLIB:filename)" Category="Advanced" Switch="IMPLIB" Separator=":" F1Keyword="VC.Project.VCLinkerTool.ImportLIbrary">
  </StringProperty>
  <StringProperty Name="MergeSections" DisplayName="Merge Sections" Description="The /MERGE option combines the first section (from) with the second section (to), naming the resulting section to. For example, /merge:.rdata=.text." Category="Advanced" Switch="MERGE" Separator=":" F1Keyword="VC.Project.VCLinkerTool.MergeSections">
  </StringProperty>
  <EnumProperty Name="TargetMachine" DisplayName="Target Machine" Description="The /MACHINE option specifies the target platform for the program." Category="Advanced" F1Keyword="VC.Project.VCLinkerTool.TargetMachine">
    <EnumValue Name="NotSet" Switch="" DisplayName="Not Set">
    </EnumValue>
    <EnumValue Name="MachineALPHA" Switch="MACHINE:ALPHA" DisplayName="MachineALPHA">
    </EnumValue>
    <EnumValue Name="MachineARM" Switch="MACHINE:ARM" DisplayName="MachineARM">
    </EnumValue>
    <EnumValue Name="MachineMIPS" Switch="MACHINE:MIPS" DisplayName="MachineMIPS">
    </EnumValue>
    <EnumValue Name="MachineMIPS16" Switch="MACHINE:MIPS16" DisplayName="MachineMIPS16">
    </EnumValue>
    <EnumValue Name="MachineMIPSR41XX" Switch="MACHINE:MIPSR41XX" DisplayName="MachineMIPSR41XX">
    </EnumValue>
    <EnumValue Name="MachinePPC" Switch="MACHINE:PPC" DisplayName="MachinePPC">
    </EnumValue>
    <EnumValue Name="MachineSH3" Switch="MACHINE:SH3" DisplayName="MachineSH3">
    </EnumValue>
    <EnumValue Name="MachineSH4" Switch="MACHINE:SH4" DisplayName="MachineSH4">
    </EnumValue>
    <EnumValue Name="MachineX86" Switch="MACHINE:X86" DisplayName="MachineX86">
    </EnumValue>
  </EnumProperty>
  <IntProperty Name="SectionAlignment" DisplayName="SectionAlignment" Description="The /ALIGN option specifies the alignment of each section within the linear address space of the program. The number argument is in bytes and must be a power of two." Category="Advanced" Switch="ALIGN" Separator=":" F1Keyword="VC.Project.VCLinkerTool.Alignment">
  </IntProperty>
  <BoolProperty Name="LinkDLL" Switch="DLL" Visible="false">
  </BoolProperty>
  <StringProperty Name="AdditionalOptions" DisplayName="Additional Options" Description="Additional Options" Category="Command Line" F1Keyword="vc.project.AdditionalOptionsPage">
  </StringProperty>
  <BoolProperty Name="BuildingInIDE" Visible="false">
  </BoolProperty>
</Rule>
